#include "gpio.h"
#include <cstring>
#include <vector>
#include <string>

void str_split(char* src,const char* split,std::vector<std::string>&res){
    char* ptr = nullptr;
    
    while((ptr = strsep(&src,split)) != nullptr){
            res.push_back(std::string(ptr));         
    } 
}

void clear_pins(std::vector<pins> &pin){
    //TODO：如果pin 为空，就不在对pin 进行清空
    if(pin.size() == 0)
        return;

    //TODO：对pin的管脚的数组，进行一次性清空
    for(int i = 0; i < pin.size() ; i++){
        pin[i].info.clear();
        pin[i].pin = 0;
        pin[i].st = false;
    }
}

//FIXME:分步处理,将所有的字符串做两步分割
void gpio::config(json& fp){
     std::string pin_info;
     std::vector<uint32_t> pin;
     std::vector<std::string> res;

     fp.find(dev_name,"pin",pin_info);
     
    if(ping_info.size() >= 4096){
        printp("gpio pins info is over programe size set\n");
        exit(1);
    } 

     //查看pin ctrl 的信息是否是正确的 
     printp("dev:%s pin: %s\n",dev_name,pin_info.c_str());
     str_split(const_cast<char*>(pin_info.c_str()),";",res); //TODO：简易的将所有的字符串分割好，并分割完成
      
          
}
